<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<?php
/*
 * PHP数据类型：
 * 虽然PHP是一门弱类型语言，在声明和使用变量的时候，并不需要指明器数据类型，但是你也应该了解它的数据类型
 * String(字符串数据类型)：
 * Integer(整型)：整数是一个没有小数的数字。
 * Float:(浮点型)：
 * Boolean(布尔型)：
 * Array(数组)：
 * Object(对象)：
 * Null(空值)：
 */
/* var_dump()函数返回数据类型和值
 * PHP整型：
 * 整数是没有一个小数的数字
 * 整数规则：
 * 整数必须至少有一个数字（0-9）
 * 整数不能包括逗号或者空格
 * 整数没有小数点
 * 整数可以时正数或者是负数
 * 整型可以用三种格式来指定：十进制 十六进制或者八进制
 */
$x = 5985;
var_dump($x);
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
echo "<br>";

/*
 * 浮点型
 * 浮点数是带小数部分的数字，或是指数形式
 * 是以下实例中我们将测试不同的数字。PHP var_dump()函数返回变量的数据类型和值
 */
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
echo "<br>";

/*
 * 布尔值：
 *  只有两个值:true/false
 */


/*
 * 数组
 *  数组可以在变量中储存多个值
 *  在以下实例中创建了一个数组，然后使用PHP var_dump()函数返回数据类型和值
 */
$cars = array("Volvo", "BMW", "Toyota");
var_dump($cars);
echo "<br>";

/* PHP对象：
 * 对象数据类型也可以用于储存数据
 * 在php中，对象必须声明。
 * 首先，你必须使用class关键字声明类对象，类包括属性和方法的结构
 * 然后我们在类定义数据类型，然后在实例化的类中使用数据类型：
 */
// 下面的这个例子会报一个警告
//Methods with the same name as their class will not be constructors in a future version of PHP
//在PHP的未来版本中,与类同名的方法将不是构造函数。
class Car
{
    var $color;

    function Car($color = "green")
    {
        $this->color = $color;
    }

    function what_color()
    {
        return $this->color;
    }
}

function print_vars($obj)
{
    foreach (get_object_vars($obj) as $prop => $val) {
        echo "$prop=$val";
    };
}

/*instantiate one object*/
$herbie = new Car("white");

//show herbie properties
echo "herbie : properties";
print_r($herbie);
echo "<br>";

/*
 * PHP NULL值
 * NULL值表示变量没有值。NULL是数据类型为NULL的值
 * NULL值指明一个变量是否为空值，同样可用于数据空值和NULL值的区别
 * 可以通过设置变量为NULL来清空变量数据
 */
$x="这是一个字符串";
$x=null;
echo "<br>";
var_dump($x);
echo "<br>";
?>
</body>
</html>